This invention relates in general to Internet communications, and in specific to connecting systems that are using different publication/subscribe communication mechanisms.
Publication and subscribe (PUB/SUB) is a mechanism for the distribution of information in a computer system or domain. A broker is used to send information to interested parties. An individual would construct a process that would detail the particular types or forms of information that the individual is interested in receiving. The process would then subscribe with the broker to receive such information. Processes that desire or are required to share information, send the information to the broker. The broker then sends the information to subscribed processes. Note that subscribing processes do not have any knowledge of the sending process. Likewise, the sending process does not have any knowledge of the subscribing processes.
However, a problem arises with two different domains desire to transfer information. Different enterprises rely on different hardware/software. Therefore, it is reasonable to assume that there may exist disparate PUB/SUB engines between two enterprises. A communication solution based on a single PUB/SUB engine will not be acceptable.
Most enterprises guard their Internet access with a firewall. These firewalls would normally restrict PUB/SUB traffic through them. One solution is to drill a hole through the firewall, however, experience has shown that political and bureaucratic difficulties can delay this process by months. Moreover, the hole creates a breach in the security of the firewall.
Another solution to this problem is to use the secure socket layer, and define a particular port for PUB/SUB traffic. However, the ports that would be needed would be the ports to web servers. These ports are well recognized port numbers. Moreover, their use for PUB/SUB would preventing the web servers from being used by other systems. Thus, this solution also has security concerns as well as system performance concerns.
Therefore, there is a need in the art for a mechanism to link to disparate PUB/SUB domains together without compromising security, reducing performance, be easy to implement, and still allow for information transfer between the two domains.
These and other objects, features and technical advantages are achieved by a system and method which uses channel adapters between two enterprises. There are two halves comprising two channel adapters to each channel, with each channel adapter residing within an enterprises domain. Each channel adapter is based on the existing PUB/SUB engine of that domain, as well as the protocol used in the network channel between the channel adapters.
Each channel adapter is initialized with a set of events it will export to its peer at the other domain. The two channel adapters handshake with these sets of events. Process adapters within each domain can then publish events of the exported type and expect the event to be carried to the other domain via the network protocol. Likewise, a process adapter can subscribe to an event type from a channel adapter that is listed on an event type list from its peer channel adapter. When an event is received via the channel adapter and re-published into the domain, the subscribing process adapter will receive the event.
For transport across the network, the inventive channel adapters convert the event information into a format acceptable by the network. The delivered information is then reconverted back into the event format for use in the other domain. An added benefit of this conversion, is that the network protocol may be changed without affecting the rest of the system. Thus, a slow SMTP connection may be improved to a TCP/IP connection, given firewall constraints, without modifying any other system. To guarantee delivery across the network, the inventive channel adapters use plurality of states and status messages to indicate the status of delivery, receipt, and publication of the events. The communication between the channel adapters is bidirectional such that one pair of channel adapters manages all event traffic between two publish/subscribe domains. The channel adapters store the events in repositories, and maintain separate queues for inbound and outbound events.
Therefore, it is a technical advantage of the present invention that existing holes in the firewall are for communications between PUB/SUB domains.
It is another technical advantage of the present invention that it provides a guaranteed message delivery service between disparate PUB/SUB domains.
It is a further technical advantage of the present invention that it provides a separation for purposes of administration between the domains.
The foregoing has outlined rather broadly the features and technical advantages of the present invention in order that the detailed description of the invention that follows may be better understood. Additional features and advantages of the invention will be described hereinafter which form the subject of the claims of the invention. It should be appreciated by those skilled in the art that the conception and specific embodiment disclosed may be readily utilized as a basis for modifying or designing other structures for carrying out the same purposes of the present invention. It should also be realized by those skilled in the art that such equivalent constructions do not depart from the spirit and scope of the invention as set forth in the appended claims.